import http from "@/utils/http";
import {SETPROFILEACTION, SETPROFILEEDITACTION, UPDATEUSERINFO} from "@/store/actionTypes";
import {createAction} from "redux-actions";
// 定义一个更新store仓库的创建action对象的函数
const updateProfileStore = createAction(UPDATEUSERINFO);
// 定义一个请求的thunk
export const getUserInfo = () => {
  return async (dispatch) => {
    const res = await http.get('/user')
    // 派发新的更新用于更新数据
    dispatch({
      type: SETPROFILEACTION,
      payload: res.data
    })
    //   dispatch一个reducer的更新
  }
};
export const getUserProfile = () => {
  return async (dispatch) => {
    const res = await http.get('/user/profile');
    // 这里res的数据就是用户信息数据
    dispatch({type: SETPROFILEEDITACTION, payload: res.data});
  };
};
// 写一个thunk==>更新用户信息的
// dispatch(updateProfile({name: '最新的昵称'}))
export const updateProfile = (userProfile) => {
  return async dispatch => {
    await http.patch('/user/profile', userProfile);
    //  更新用户的信息到store仓库里面去
    dispatch(updateProfileStore(userProfile))
  }
}
// 更新用户头像数据的thunk
export const updatePhoto = (fd) => {
  return async (dispatch) => {
    //  请求接口，提交头像数据
    //  提交form/data格式的数据的时候，直接把数据传入给axios
    const res = await http.patch('/user/photo', fd)
    // console.log(res)
    // 头像的链接写入到redux里面去
    dispatch(updateProfileStore({photo: res.data.photo}))
  }
}

// 看一下头像数据能不能提交到服务器端
//
